import { ref } from 'vue'
import PageModel from '@/components/PageModel'

type Callbackfn = (...args: any[]) => void

export function UsePageModel(
  newCallback?: Callbackfn,
  editCallback?: Callbackfn
) {
  const pageModelRef = ref<InstanceType<typeof PageModel>>()

  const defaultInfo = ref({})

  const handleNewData = () => {
    if (pageModelRef.value) pageModelRef.value.dialogVisible = true
    defaultInfo.value = {}
    newCallback && newCallback()
  }
  const handleEditData = (item: any) => {
    if (pageModelRef.value) pageModelRef.value.dialogVisible = true

    defaultInfo.value = { ...item }
    editCallback && editCallback(item)
  }
  return [handleNewData, handleEditData, pageModelRef, defaultInfo]
}
